Objet : Tâche
Symbole :
Vous configurez la tâche dans l'objet. Vous pouvez configurer la priorité, le type avec le comportement temporel et un chien de garde. Vous pouvez également ajouter PROGRAM
appels.
L'objet se trouve dans l'arborescence des appareils, en dessous de Configuration des tâches.
Onglet : Configuration
Objet : Tâche
Priorité | Valeurs possibles : 0..31, où 0 est la priorité la plus élevée |
Groupe de tâches | Attribué groupes de tâches qui peut être affecté à des cœurs de processeur spécifiques en multicœur Exemple: Tâches CEI Remarque : Le groupe de tâches est affiché entre parenthèses après la tâche dans l'arborescence des périphériques. |
Important
Lors de l'utilisation d'un système d'exécution sous Linux, il existe des dépendances fixes entre les groupes de tâches et les priorités. Pour plus d'informations, consultez : Cartographie des priorités des tâches sur un système Linux
Taper
Tapez : | Le traitement de la tâche se fait de manière cyclique. |
Champ de saisie Intervalle | Obligatoire Intervalle de temps après lequel la tâche est redémarrée (temps de cycle de la tâche)
Remarque : Les écarts de la tâche par rapport à la durée de cycle de tâche souhaitée sont affichés lors de l'exécution sous forme de gigue périodique sur le Onglet : Surveillance onglet. |
Unité de temps de l'intervalle | Si seul un nombre et non une définition de temps est spécifié dans le Intervalle champ de saisie, l'unité sélectionnée ici détermine les dimensions temporelles. Exemple: Mme Remarque : Un temps de cycle de tâche en µs est toujours affiché sous forme de nombre. |
Tapez : | Le traitement de la tâche démarre événementiellement sur le front montant de la variable événement. |
Champ de saisie Événement | Variable globale (type booléen) La tâche démarre dès que la valeur de la variable passe de 0 à 1. |
Tapez : | Le traitement de la tâche démarre événementiellement sur le front montant de la variable événement. |
Zone de liste Événement | Liste avec les événements cibles dépendant du système (type booléen) Remarque : Le système cible détermine les événements pris en charge et proposés dans la zone de liste. Astuce : à ne pas confondre avec les événements système. |
Intervalle | Définition de l'heure dans Remarque : Uniquement disponible lorsque l'événement nécessite une définition d'heure |
Tapez : | Le traitement de la tâche redémarre automatiquement en boucle continue au démarrage du programme et après la fin d'une exécution après un certain temps d'attente Important : Une fois l'exécution terminée, il faut attendre un certain temps avant que la tâche ne soit à nouveau exécutée. La durée est un pourcentage de la durée du dernier cycle. Remarque : Vous ne définissez pas de durée de cycle. |
Tapez : | Le traitement de la tâche démarre déclenché par l'état des variables d'événement |
Champ de saisie Événement | Variable globale (type booléen) Lorsque la variable a l'état Remarque : La variable est généralement réinitialisée dans la tâche elle-même. Contrairement à la tâche événementielle, aucun événement ne peut être manqué de cette manière. Lorsqu'un événement se produit, le planificateur doit enregistrer une ancienne valeur, et celle-ci peut changer plus souvent qu'elle n'est vérifiée. Ainsi, si une variable d'événement change en |
Important
Pour les bus de terrain, une matrice de cycle fixe est nécessaire pour assurer un comportement déterminé. Par conséquent, vous ne devez pas utiliser Taper Roue libre pour une tâche de cycle de bus.
Important
Notez la différence suivante entre les types de traitement Statut et Événement. Si l'événement donné donne TRUE
, alors la condition de démarrage d'une tâche de type Statut est remplie. En revanche, le démarrage d'une tâche de type Événement nécessite un basculement de l'événement de FALSE
pour TRUE
. Si le taux d'échantillonnage du planificateur de tâches est trop faible, le front montant de l'événement peut passer inaperçu.
Important
Lors du réglage du temps de cycle de la tâche, vous devez identifier le système de bus actuellement utilisé. Par exemple, le temps de cycle de tâche dans un système de bus CAN doit correspondre au débit en bauds actuellement défini et au nombre de trames utilisées dans le bus. De plus, les durées définies pour la pulsation, la protection de nœud et la synchronisation doivent toujours être un multiple du temps de cycle de la tâche. Sinon, les trames CAN peuvent être perdues.
Pour plus d'informations, voir : Onglet : Surveillance
Chien de garde
Définit le temps de surveillance d'une tâche. Si le système cible prend en charge une configuration de chien de garde avancée, les paramètres suivants peuvent être prédéfinis dans la description de l'appareil.
Les paramètres de surveillance par défaut dépendent de l'appareil. | |
Activer |
Si la tâche dépasse la durée actuellement définie par le chien de garde, elle est interrompue avec un statut d'erreur (exception). L'application dans la tâche de laquelle l'erreur s'est produite et ses applications enfants sont également interrompues. De cette manière, toutes les tâches des applications concernées sont également interrompues. Ensuite, le actuellement défini Sensibilité est également pris en compte. Si vous activez l'option Mettre à jour les E/S dans le Réglages PLC du PLC, puis CODESYS rétablit les valeurs par défaut définies pour les sorties. . Cas possibles :
|
Temps (p.ex. t#200ms) | Temps de chien de garde Définit (avec Sensibilité) le chien de garde d'une tâche ; description comme pour Permettre. Selon le système cible, l'intervalle de temps de surveillance est donné en pourcentage de l'intervalle de tâche si possible. Dans ce cas, la zone de liste de l'unité est désactivée et affiche %. |
Sensibilité | Nombre Définit (avec le chien de garde) le chien de garde pour une tâche ; description comme pour Permettre. |
Astuce
Utilisation des fonctions de la bibliothèque CmpIecTask.library
, vous pouvez désactiver un chien de garde pour des cycles API spécifiques. Ceci est utile pour les cycles qui demandent plus de temps en raison de l'initialisation.
Désactiver/réactiver le watchdog :
VAR hIecTask : RTS_IEC_HANDLE; END_VAR hIecTask := IecTaskGetCurrent(0); IecTaskDisableWatchdog(hIecTask); //Watchdog disabled ... IecTaskEnableWatchdog(hIecTask); //Watchdog enabled
Le watchdog est désactivé avant l'initialisation avec IecTaskDisableWatchDog
pour le reste du cycle et se réactive automatiquement au cycle suivant.
Le watchdog peut être réactivé après initialisation avec IecTaskEnableWatchDog
. Le chien de garde est alors déjà réactivé pour le reste du cycle (la fenêtre de temps du chien de garde recommence depuis le début).
Initialisations de blocs fonctionnels qui se produisent dans FB_Init
méthode n'est pas affectée par cela. Mais il y avait une limite de < 30 secondes en raison du délai de communication. Cette limite de temps n'existe plus depuis la version 3.5 SP18 car les services en ligne sont exécutés
Astuce
Le chien de garde normal d'une tâche CEI est déclenché lorsque le temps d'exécution de la tâche CEI dépasse le temps de chien de garde.
Le chien de garde "Cycle omis" est déclenché lorsque la tâche ne démarre pas du tout. C'est le cas lorsque la tâche n'exécute aucun cycle dans le délai maximum de <Temps * Sensibilité> ou <2 * Intervalle>. La cause peut être un engorgement par d'autres tâches ou une défaillance du planificateur, qui n'active plus la tâche.
Appels de programme
POU (POU objet avec type L'ordre dans lequel les POU sont appelés correspond à l'ordre d'appel configuré ici de haut en bas. | |
| Ouvre l'assistant de saisie. Sélectionnez un |
| Supprime l'appel |
| Ouvre l'assistant de saisie pour l'appel sélectionné. Sélectionnez un autre |
| Déplace la position de l'appel vers le haut ou vers le bas dans la liste. L'ordre des appels change en conséquence lors de l'exécution. |
| Ouvre l'éditeur POU avec la déclaration et la mise en œuvre du |